package edu.usc.cmb.iregulome.dao;

import java.util.List;

import edu.usc.cmb.iregulome.entity.ChIPseqTableEntity;
import edu.usc.cmb.iregulome.entity.ChipSeqBroadPeaksEntity;
import edu.usc.cmb.iregulome.entity.ChipSeqPeaksEntity;
import edu.usc.cmb.iregulome.entity.Sample;
import edu.usc.cmb.iregulome.entity.SampleAttribute;
import edu.usc.cmb.iregulome.entity.Study;

public interface SampleStudyDAO {

	List<String> fetchStudyIds();

	List<ChipSeqPeaksEntity> retrieveChipSeqBySampleId(String sampleId);

	List<ChipSeqBroadPeaksEntity> retrieveChipSeqBPeaksBySampleId(
			String sampleId);

	List<Sample> fetchSample(String studyId, Integer integer, String cellType, String factor);

	List<String> fetchAllCellTypes();

	List<String> fetchAllFactors();

	List<String[]> fetchAllStudyIdWithTitle(Integer integer);

	Sample fetchSample(String sampleID);
	
	List<Sample> fetchSamples(List<String> sampleIDList);

	Study fetchStudyBySampleID(String sampleID);

	ChIPseqTableEntity fetchChIPSeqStat(String sampleID);
	
	List<ChIPseqTableEntity> fetchChIPSeqStatList(List<String> sampleIDList);

	List<SampleAttribute> fetchSampleAttributes(String sampleID);

}
